package com.adhere.system.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import java.time.LocalDateTime;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;

/**
 * <p>
 * rbac_privilege表行数据执行“逻辑真删除”
 * </p>
 *
 * @author 
 * @since 2021-04-02
 */
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="RbacPrivilege对象", description="rbac_privilege表行数据执行“逻辑真删除”")
public class RbacPrivilege implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键 自增 不返给前端,添加时不需要传入
     */
    @TableId(value = "id", type = IdType.AUTO)
    @JsonIgnore
    private Long id;

    /**
     * 权限的编码,根据id编码,添加时不需要进行传入,更新时需要
     */
    private String code;

    /**
     * 权限名称
     */
    @NotBlank(message = "权限信息的名称不能为空")
    private String name;

    /**
     * 请求协议 HTTP HTTPS WS 枚举类型
     */
    @NotBlank(message = "权限信息的请求协议类型不能为空")
    private String scheme;

    /**
     * 权限的 uri 表达式
     */
    @NotBlank(message = "权限信息的url不能为空")
    private String uri;

    /**
     * 请求方式 GET POST PUT PATCH DELETE 枚举类型
     */
    @NotBlank(message = "权限信息的请求方法不能为空")
    private String requestMethod;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;


}
